/**
 * 結果一覧　通過記録一覧画面 コントローラ
 */
APP.controller('ResultEkidenTuka', function($http, $window, $timeout, $anchorScroll) {
  
  // thisを保持（Ajax内のthisと混同を防ぐ為）
  var pthis = this;
  // HTMLファイル名取得
  var fileName = window.location.href.split('/').pop().split(".html").shift();


  /**
   * 初期処理
   */
  pthis.Initialize = function () {

    // 表示用データをクリア
    pthis.datTaikai = [];
    pthis.datResultEkidenTuka = [];
    // 並び替えを追加（初期値は順位）
    pthis.prmSort = "1";

    // Promiseを使用しJSONを並列取得し、表示処理を実施する
    Promise.all([new Promise(function (resolve, reject) {

      //=== 大会情報JSONの取得を行う
      $http({
        method  : AJAX_METHOD_GET,
        url     : '../../Taikai.json' + '?a=' + START_TIMESTAMP,
      }).then(function successCallback(response) {
        // 大会情報データ
        pthis.datTaikai = response.data;
        resolve();
      }, function errorCallback(response) {
        reject();
      });

    }), new Promise(function (resolve, reject) {

      //=== 通過記録（駅伝） 一画面 一覧JSONの取得を行う
      $http({
        method  : AJAX_METHOD_GET,
        url     : './'+fileName+'.json' + '?a=' + START_TIMESTAMP,
      }).then(function successCallback(response) {
        // 全結果一覧データ
        pthis.datResultEkidenTuka = response.data;
        resolve();
      }, function errorCallback(response) {
        reject();
      });
            
    })]).catch(function () {

    });

  };

  pthis.RankingChanges = function () {
    // 順位変動表ページ遷移
    window.location.href = pthis.datResultEkidenTuka.LinkRound;

  }

  /**
   * ソートボタン変更イベント
   */
  pthis.ClickSort = function () {
    
    for (var i in pthis.datResultEkidenTuka.ResultInfo) {
      pthis.datResultEkidenTuka.ResultInfo[i].Sort = pthis.prmSort;
    }

  }
  

  // 初期処理を実行
  pthis.Initialize();

});
